﻿Imports System
Imports System.IO
Imports System.Text

Public Class HtmlWriter

    Private pfad As String
    Private bookStream
    Private bookNameString As String
    Private utf8 As Encoding = New UTF8Encoding


    ' Konstruktor der Klasse.
    ' Inizialisert Variablen und legt HTML File an.
    ' bekommt als Übergabeparameter den Namen des Buches
    Sub New(ByVal bookName As String)

        Me.pfad = "D:\"
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookName + ".html")
        Me.bookNameString = bookName
        Me.bookStream.Write("<!DOCTYPE html><html><head><title>" + bookName + "</title>")
        Me.bookStream.Write("<script src=" + Chr(34) + "http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" + Chr(34) + "type=" + Chr(34) + "text/javascript" + Chr(34) + "></script>")
        Me.bookStream.Write("<script src=" + Chr(34) + "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js" + Chr(34) + "type=" + Chr(34) + "text/javascript" + Chr(34) + "></script>")
        Me.bookStream.Write("<script src=" + Chr(34) + "http://www.panthes.de/teamprojekt/booklet/jquery.easing.1.3.js" + Chr(34) + "type=" + Chr(34) + "text/javascript" + Chr(34) + "></script>")
        Me.bookStream.Write("<script src=" + Chr(34) + "http://www.panthes.de/teamprojekt/booklet/jquery.booklet.1.2.0.min.js" + Chr(34) + "type=" + Chr(34) + "text/javascript" + Chr(34) + "></script>")
        Me.bookStream.Write("<link href=" + Chr(34) + "http://www.panthes.de/teamprojekt/booklet/jquery.booklet.1.2.0.css" + Chr(34) + " type=" + Chr(34) + "text/css" + Chr(34) + " rel=" + Chr(34) + "stylesheet" + Chr(34) + " media=" + Chr(34) + "screen, projection, tv" + Chr(34) + "/>")
        Me.bookStream.Write("<script type=" + Chr(34) + "text/javascript" + Chr(34) + ">$(function() {$('#mybook').booklet({manual:   false,overlays: true, hovers:   true, width:  800, height: 500 });});</script>")
        Me.bookStream.Write("<style type=" + Chr(34) + "text/css" + Chr(34) + "> body { background-color:#000000; f} </style> </head> <body> <header> </header> <nav> </nav> <section > <div id=" + Chr(34) + "mybook" + Chr(34) + "> <div class=" + Chr(34) + "b-load" + Chr(34) + "><div>")

        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion um den Pfad zu setzen, wohin die fertige Html Seite gespeichert werden soll
    Public Sub setPfad(ByVal pfadString As String)
        Me.pfad = pfadString

    End Sub

    ' Funktion um eine Überschrift in das Buch zu schreiben
    ' bekommt als Übergabeparameter den zu schreibenden Text
    Public Sub writeTitle(ByVal textString As String)
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 99999999)
        Me.bookStream.Write("<h3>" + textString + "</h3>")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion um einen normalen Text in das Buch zu schreiben
    ' bekommt als Übergabeparameter den zu schreibenden Text
    Public Sub writeText(ByVal textString As String)
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 99999999)
        Me.bookStream.Write("<p>" + textString + "</p>")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion um einen mehrere Leerzeichen(Tabulator) in das Buch zu schreiben
    Public Sub writeTab()
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 512)
        Me.bookStream.Write("&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion um ein Leerzeichen in das Buch zu schreiben
    Public Sub writeSpace()
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 512)
        Me.bookStream.Write("&ensp;")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion ein Bild in das Buch zu zeichnen
    ' bekommt als Übergabeparameter den Pfad des Bildes die gewünschte Größe
    Public Sub nextPage(ByVal imagePfad As String, ByVal width As Integer, ByVal height As Integer)
        ' Bild muss aus Pfad kopiert werden und neue Bilddatei erstellt werden mit der dann gearbeitet wird


        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 1512)
        Me.bookStream.Write("<img width=" + Chr(34) And width And "%" + Chr(34) + " height=" + Chr(34) And height And "%" + Chr(34) + " alt= " + Chr(34) + Chr(34) + " src=" + Chr(34) + "images/1.jpg" + Chr(34) + ">")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion um auf die nächste in das Buch zu schreiben
    Public Sub nextPage()
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 512)
        Me.bookStream.Write("</div><div>")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

    ' Funktion die das Buch abschließt
    Public Sub finishBook()
        Me.bookStream = New System.IO.StreamWriter(Me.pfad + bookNameString + ".html", True, utf8, 2048)
        Me.bookStream.Write("</div> </div> </div> </section> </body> </html>")
        Me.bookStream.Close()
        Me.bookStream.Dispose()
    End Sub

End Class
